// // 引入ws模块
// const WebSocket = require("ws");

// // 创建一个WebSocket服务器实例，监听3000端口
// const wss = new WebSocket.Server({
//   port: 5000
// });

// // 当有客户端连接时
// wss.on("connection", function connection(ws) {
//   // 当收到客户端的消息时
//   ws.on("message", function incoming(message) {
//     console.log("received: %s", message);

//     // 发送消息回客户端
//     ws.send(`Hello, you sent -> ${message}`);
//   });

//   ws.on("chatMessage", function (info) {
//     console.log(info, "hello receiver");
//   });

//   // 当WebSocket连接关闭时
//   ws.on("close", function close() {
//     console.log("Connection closed");
//   });
// });

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const Koa = require("koa");
var cors = require("koa2-cors");
const { createServer } = require("http");
const { Server } = require("socket.io");

const app = new Koa();
app.use(cors());
const httpServer = createServer(app.callback());
const io = new Server(httpServer, {
  /* options */
});

let myFirstTester = {};

// 当客户端连接时
io.on("connection", (socket) => {
  console.log(myFirstTester, "111");

  myFirstTester[socket.id] = socket;

  console.log("一个客户端已连接", socket.id);
  // 监听来自客户端的自定义事件，例如 'chat message'
  socket.on("message", (msg) => {
    console.log("收到来自客户端的消息:", msg);
    // 可以选择将消息广播给所有连接的客户端
    // io.emit('chat message', msg);
  });

  socket.on("show", (info) => {
    console.log("收到来自客户端的消息:", info);
  });

  socket.on("disconnect", () => {
    console.log("一个客户端已断开连接");
  });

  socket.emit("show", "我们已经接收到信息了");

  socket.on("SEND-MSG", (info) => {
    console.log(info, Date.now());
    console.log();
    socket.emit("RECEIVE-MSG", `${Date.now()}-接收到信息:${info}`);
  });

  setTimeout(function () {
    myFirstTester[socket.id].emit(
      "RECEIVE-MSG",
      "这是我单独给你发的信息,别人收不到的"
    );
  }, 1000);
});

httpServer.listen(5000, () => {
  console.log("服务器正在监听端口 5000");
});
